import { nodeResolve } from '@rollup/plugin-node-resolve';
import commonjs from '@rollup/plugin-commonjs';
import babel from '@rollup/plugin-babel';

/**
 * @type {import('rollup').RollupOptions}
 */
const buildIndexOptions = {
  // input: 'src/index.js',
  input: ['src/index.js'],

  output: {
    dir: 'dist/esm',
    format: 'esm',
    entryFileNames: '[name].[hash].js',
    chunkFileNames: 'chunk-[name].[hash].js',
    manualChunks: {
      // 将  lodash-es 单独分包出去 当作一个单独的chunk
      'lodash-es': ['lodash-es'],
    },
    // 分包的另一个形式
    // manualChunks(id) {
    //   if (id.includes("lodash-es")) {
    //     return "lodash-es";
    //   }
    // }
  },
  plugins: [
    nodeResolve(), // rollup是默认不解析第三方模块的 这个配置是 让rollup解析第三方模块
    commonjs(), // rollup默认并不支持Commonjs模块化 这个配置是 让rollup能解析Commonjs模块化
    babel({
      babelHelpers: 'runtime',
      include: 'src/**',
      exclude: 'node_modules/**',
      extensions: ['.js', '.ts'],
    }),
  ],
  // external: ['lodash-es'], // 排除掉这个模块
};

// /**
//  * @type {import('rollup').RollupOptions}
//  */
// const buildMainOptions = {
//   input: 'src/main.js',
//   output: {
//     dir: 'dist/esm',
//     format: 'esm',
//     entryFileNames: '[name].[hash].js',
//     chunkFileNames: '[name].[hash].js'
//   }
// }

export default [buildIndexOptions];
